package com.bosssoft.quickstart.utilsTest;

import com.bosssoft.quickstart.utils.IDValidatorUtil;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
public class IDValidatorUtilTest {

    // 正确的身份证号
    @Test
    public void testValidID() {
        String validID = "11010519491231002X"; // Use an actual valid ID for testing
        assertTrue(IDValidatorUtil.isValidID(validID));
    }

    // 错误的身份证号格式
    @Test
    public void testInvalidIDFormat() {
        String invalidID = "123456789012345678"; // Incorrect format
        assertFalse(IDValidatorUtil.isValidID(invalidID));
    }

    // 错误的校验码
    @Test
    public void testInvalidCheckDigit() {
        String invalidID = "110105194912310029"; // Correct format, but wrong check digit
        assertFalse(IDValidatorUtil.isValidID(invalidID));
    }

    // 空字符串
    @Test
    public void testEmptyID() {
        String emptyID = "";
        assertFalse(IDValidatorUtil.isValidID(emptyID));
    }

    // null值
    @Test
    public void testNullID() {
        assertFalse(IDValidatorUtil.isValidID(null));
    }

    // 小写x的情况
    @Test
    public void testLowerCaseX() {
        String validID = "11010519491231002x"; // Normally valid, check if the method handles lowercase x
        assertTrue(IDValidatorUtil.isValidID(validID));
    }

}
